// 新建 utils/validators.js 文件

function resetMoney(str) {
  if (!str) {
    return 0;
  }
  if (typeof (str) == 'number') {
    return str;
  }
  let num = parseFloat(str.replace(/[^\d\.-]/g, ""));
  return num;
}

// 金额最小值验证（支持参数）
export const minAmount = (min = 1, unit = '元') => ({
  validator: (rule, value, callback) => {
    if (value === null || value === undefined || value === '') {
      return callback()
    }
    const numValue = resetMoney(value)
    if (isNaN(numValue)) {
      return callback(new Error('必须输入有效数字'))
    }
    if (numValue < min) {
      return callback(new Error(`金额不能小于${min}${unit}`))
    }
    callback()
  },
  trigger: ['blur', 'change']
})

// 数字类型验证
export const numberType = {
  type: 'number',
  message: '必须输入数字',
  trigger: ['blur', 'change']
}

// 必填验证（带自定义字段名）
export const requiredRule = (fieldName = '金额') => ({
  required: true,
  message: `${fieldName}不能为空`,
  trigger: 'blur'
})
